//
//  SQLiteManager.swift
//  1.FMDBDemo
//
//  Created by apple on 16/1/25.
//  Copyright © 2016年 apple. All rights reserved.
//

import Foundation

private let dbName = "Weibo"
class SQLiteManager {
    
    
    //全局访问的单例对象
    static let shareSQLiteManager: SQLiteManager = SQLiteManager()
    //全局操作数据库队列的唯一对象
    let queue: FMDatabaseQueue
    //为了确保单例对象的唯一性
    //私有化构造函数
    private init() {
        //得到fmdb 操作数据库的对象  FMdataBaseQueue 数据库队列对象
        //
        
        //1.sqlite做一个一个嵌入式的数据库 需要存放在沙盒路径中
        let path = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last! as NSString).stringByAppendingPathComponent(dbName)
        print(path)
        //如果有存在数据库 就直接创建数据库操作的串行队列 如果没有数据库 就先创建数据库 在创建数据库操作的串行队列
        //嵌入式的数据一旦打开 就不会断开链接  为了避免频繁的打开链接 或者 断开链接 带来的效率低下的问题
        //服务器的数据库就不同 一旦操作完毕后就会断开链接
        queue = FMDatabaseQueue(path: path)
        
        //创建数据表
        createTable()
    }
    
    //创建数据表
    private func createTable() {
        //执行sql创建数据表
        let sql = "CREATE TABLE IF NOT EXISTS T_Person (" +
            "id integer PRIMARY KEY AUTOINCREMENT NOT NULL," +
            "name text," +
        "age integer) ;"
        print(sql)
        queue.inDatabase { (db) -> Void in
            //执行sql创建数据表 executeStatements 可以执行多条sql语句
            if db.executeStatements(sql) {
                print("创建数据表成功")
            } else {
                print("创建数据表失败")
            }
        }
    }
}